//
//  estrutura_grafo.h
//  sspayment_cliente_cpp
//
//  Created by Alexandre Albano on 02/07/12.
//  Copyright (c) 2012 Programa de Educação Tutorial PET/UFC Engenharia da Computação. All rights reserved.
//

#ifndef sspayment_cliente_cpp_estrutura_grafo_h
#define sspayment_cliente_cpp_estrutura_grafo_h

class lista_sucessores;
class lista_vertices;

class lista_vertices{
public:
    int vertice;
    lista_sucessores *sucessor; //vertice destino do arco
    int quantidade_sucessores; //quantidade de sucessores
    lista_sucessores *ultimo_sucessor; //ponteiro para o ultimo sucessor da lista
    
public:
    void cria_vertice(int vertice, lista_sucessores *sucessor){
        this->vertice=vertice;
        this->sucessor=sucessor;
        this->quantidade_sucessores=0;
        this->ultimo_sucessor=sucessor;
    };
    
};

class lista_sucessores
{
public:
    int vertice;
    int peso; //peso da ligação
    lista_sucessores *proximo_sucessor; //sucessor, vertice ligado pelo arco
public:
    void cria_sucessor(int vertice, int peso){
        this->vertice=vertice;
        this->peso=peso;
        this->proximo_sucessor=NULL;
    };
};

#endif
